package proyecto.gestionarDatosDeRequisitosDeConocimientosPrevios;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import proyecto.BusinessLogic.RequisitoConocimientosBLRemote;
import proyecto.EntityBeans.RequisitoConocimientos;

import util.Common;
 
public class ObtenerRequisitoConocimientosPreviosAction extends Action {
	
	protected ActionForm construirRequisitoConocimientosPreviosForm(String id)
			throws Exception {
		
		RequisitoConocimientosPreviosForm form = null;
		RequisitoConocimientosBLRemote requisitoConocimientosBLRemote = null;
		RequisitoConocimientos requisito = null;
		final Context context;
		Integer idRequisitosConocimientos = Integer.valueOf(id);
		System.out.println("idrequisitoconocimientos " + idRequisitosConocimientos);
		
		try {	
			context = new InitialContext();					
			requisitoConocimientosBLRemote = (RequisitoConocimientosBLRemote) context.lookup("RequisitoConocimientosBL/remote");
		}
		catch (NamingException e)				{
			e.printStackTrace();
			throw new RuntimeException(e);				
		}
		
		System.out.println("antes de encontrar el requisito");
		requisito = requisitoConocimientosBLRemote.findById(idRequisitosConocimientos);
		System.out.println("requisito encontrado en ObtenerRequisitoAction " + requisito.getIdRequisitosConocimientos());
		
		if ( requisito != null ) {
			form = new RequisitoConocimientosPreviosForm();
			form.setIdRequisitosConocimientos(requisito.getIdRequisitosConocimientos());
			form.setNombre(requisito.getNombre());
			form.setDescripcion(requisito.getDescripcion());
			//form.setFechaAlta(requisito.getFechaAlta());
		}
		else {
			throw new Exception("Requisito " + idRequisitosConocimientos + " no encontrado!");
		}
		
		return form;
	}
	
	
	public ActionForward execute(
			ActionMapping mapping,
			ActionForm form,			
			HttpServletRequest request,
			HttpServletResponse response) {
								
			try {
				form = this.construirRequisitoConocimientosPreviosForm(request.getParameter("idRequisitosConocimientos"));
								
				if ("request".equals(mapping.getScope())) {				
					request.setAttribute(mapping.getAttribute(), form);
				}				
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
											
			return mapping.findForward(Common.SUCCESS);				
		}
		
}
